package cn.iocoder.yudao.module.mqtt.dal.dataobject.device;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * IoT 设备 DO
 *
 * @author 管理员
 */
@TableName("mqtt_device")
@KeySequence("mqtt_device_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DeviceDO extends BaseDO {

    /**
     * 设备 ID，主键，自增
     */
    @TableId
    private Long id;


    private String roleIds;
    /**
     * 设备分组编号集合
     */
    private Long groupId;
    /**
     * mqtt_config的ID
     */
    private Long mqttConfigId;
    /**
     * 报警状态
     */
    private String alarmStatus;
    /**
     * 默认报警
     */
    private String alarmDefult;
    /**
     * MQTT 客户端 ID
     */
    private String mqttClientId;
    /**
     * 设备唯一标识符，全局唯一，用于识别设备
     */
    private String deviceKey;
    /**
     * 设备名称
     */
    private String deviceName;
    /**
     * 站点名称
     */
    private String countryName;

    /**
     * 备注设备名称
     */
    private String nickname;
    /**
     * 设备类型
     */
    private Integer deviceType;
    /**
     * 0 系统  1 立升
     */
    private String dataSource;
    /**
     * 网关SN编号
     */
    private String gatewayId;
    /**
     * 联网方式
     */
    private String networkType;
    /**
     * 信号
     */
    private String signalStrength;
    /**
     * 设备状态(网关)
     */
    private String getewayStatus;
    /**
     * 设备在线(MQTT)
     */
    private String isOnline;

    /**
     * 设备详细地址
     */
    private String address;
    /**
     * 0 不送 1 送 监测局
     */
    private String isUpload;
    /**
     * 固件版本
     */
    private String firmwareVersion;
    /**
     * 物联网卡号(ICCID) (网关)
     */
    private String firmwareId;
    /**
     * 设备图片
     */
    private String picUrl;
    /**
     * 地区编码
     */
    private Integer areaId;
    /**
     * 设备位置的经度
     */
    private BigDecimal longitude;
    /**
     * 设备位置的纬度
     */
    private BigDecimal latitude;


    private String province;
    private String city;
    private String district;


}